#pragma once

#include <stdio.h>
#include <iostream>
#include <fstream>
#include <math.h>
#include <string>
#include <algorithm>
#include <vector>
#include <tchar.h>

using namespace std;

typedef std::basic_string<_TCHAR> tstring;

enum ErrorType { 
	ERR_TYPE_NEG, 
	ERR_TYPE_POS 
};

enum NucType {
	A,
	C,
	G,
	T
};

struct CaseData {
	int olignucLength;
	int spectrumSize;
	int errorNum;
	int chainLength;
	ErrorType errorType;
	unsigned int* olignucs;
};

unsigned int str2Nuc(string);
string nuc2Str(unsigned int, int);
bool compareUInt(int left, int right);
CaseData* processInput(_TCHAR*);